/*
 * EdgeNode.h
 *
 *  Created on: 19/09/2009
 *      Author: Santi
 */

#ifndef EDGENODE_H_
#define EDGENODE_H_

#include "Node.h"
#include "Edge.h"

class EdgeNode : public Node{
private:
	Edge* data;
public:
	EdgeNode();
	virtual ~EdgeNode();
	/**
	 * Gets node value
	 */
	Edge* getNodeValue() const;
	/**
	 * Sets node value
	 */
	void setNodeValue(Edge* value);
	/**
	 * Copy Constructor
	 */
	EdgeNode(const EdgeNode &edgeNode);
	/**
	 * Operator '='
	 */
	EdgeNode& operator=(const EdgeNode &edgeNode);
	/**
	 * Virtual clone to implement. Virtual copy constructor.
	 */
	virtual EdgeNode* clone() const;
	/**
	 * Virtual implementation of equals
	 */
	virtual bool equals(const Node& node) const;
};

#endif /* EDGENODE_H_ */
